import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  // 开启严格模式
  strict: true,
  state: {
    count: 0,
    money: 9999,
    age: 15,
    // 购物车数据
    cartList: [
      { id: 1, name: '皮鞋', price: 9.9 },
      { id: 2, name: '凉鞋', price: 7699 },
      { id: 3, name: '外套', price: 2399 },
      { id: 4, name: '斜挎包', price: 17900 },
    ]
  },
  getters: {
    totalPrice (state) {
      // 经过一系列计算
      return state.cartList.reduce((sum, v) => sum += v.price, 0)
    }
  },
  mutations: {
    // mutations是唯一可以修改state里数据的地方
    addCount (state, num) {
      state.count += num
    },
  },
  actions: {
    // 参数1：固定的是ctx（context），可以理解为是当前store对象,相当于是外面的$store
    // 参数2：额外参数，额外参数只能传1个
    reqCount (ctx, num) {
      setTimeout(() => {

        ctx.commit('addCount', num)

      }, 1000);
    }
  },
  modules: {
  }
})
